package com.itheima.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.itheima.controller.dto.UserDto;
import com.itheima.entity.PasswordDto;
import com.itheima.entity.QueryPageBean;
import com.itheima.entity.Result;
import com.itheima.pojo.User;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
 * @Description 用户服务接口
 * @Author makun
 * @Date 2023/9/12 16:24
 * @Version 1.0
 */
public interface UserService extends IService<User> {
    /**
     * 根据用户ID更新密码
     * @param userId
     * @param password
     * @return
     */
    boolean editPasswordByUserId(Integer userId, String password);

    /**
     * 编辑用户
     * @param userDto
     * @return
     */
    boolean editOne(UserDto userDto);

    /**
     * 新增用户
     * @param userDto 用户信息
     * @return
     */
    boolean saveOne(UserDto userDto);

    /**
     * 登录用户
     * @param username
     * @param password
     * @return
     */
    User login(String username, String password);

    /**
     * 更新用户的密码
     * @param request
     * @param passwordDto
     * @return
     */
    Result updatePassword(HttpServletRequest request, PasswordDto passwordDto);

    /**
     * 分页查询用户信息
     * @param queryPageBean
     * @return
     */
    Page<User> findPage(QueryPageBean queryPageBean);

    /**
     * 根据用户ID获取该用户下所有的角色ID
     * @param userId
     * @return
     */
    List<Integer> getRoleIdsByUserId(Integer userId);
}
